(function () {
  try {
    // 检查是否在API文档页面
    if (window.location.pathname.includes('/docs/openapi/')) {
      // 创建加载指示器
      const loadingIndicator = document.createElement('div');
      loadingIndicator.className = 'scalar-loading-indicator';
      loadingIndicator.id = 'scalar-loading-indicator';

      const spinner = document.createElement('div');
      spinner.className = 'scalar-loading-spinner';

      const text = document.createElement('div');
      text.className = 'scalar-loading-text';
      text.textContent = '正在加载中...';

      loadingIndicator.appendChild(spinner);
      loadingIndicator.appendChild(text);

      // 添加到body
      document.body.appendChild(loadingIndicator);

      // 监听暗黑模式切换, 给 document.body 加上类名，适配 scalar 的 variables 样式
      function updateScalarThemeClass() {
        const theme =
          document.documentElement.getAttribute('data-theme') ||
          document.body.getAttribute('data-theme');

        // 移除所有主题类
        document.body.classList.remove('light-mode', 'dark-mode');

        // 根据当前主题添加相应类
        if (theme === 'dark') {
          document.body.classList.add('dark-mode');
        } else if (theme === 'light') {
          document.body.classList.add('light-mode');
        }
      }

      // 监控页面加载完成
      window.addEventListener('load', function () {
        setTimeout(() => {
          updateScalarThemeClass();
        }, 1000);

        // 监听Scalar容器加载完成
        const checkScalarLoaded = setInterval(function () {
          // 针对不同的页面检查不同的选择器
          const selectors = [
            '.scalar-api-reference', // v1 API页面
            '[data-scalar-api-reference]', // 备用选择器
          ];

          let isLoaded = false;

          for (const selector of selectors) {
            const container = document.querySelector(selector);
            if (
              container &&
              (container.children.length > 0 || container.shadowRoot)
            ) {
              isLoaded = true;
              break;
            }
          }

          if (isLoaded) {
            // 内容已加载，淡出加载指示器
            loadingIndicator.style.opacity = '0';

            // 动画结束后移除元素
            setTimeout(() => {
              document.body.removeChild(loadingIndicator);
            }, 300);

            document.title = `接口文档 | 模力方舟（Gitee AI）`

            clearInterval(checkScalarLoaded);
          }
        }, 100);

        // 超时处理（20秒后仍未加载完成）
        setTimeout(function () {
          if (document.getElementById('scalar-loading-indicator')) {
            loadingIndicator.style.opacity = '0';

            // 动画结束后移除元素
            setTimeout(() => {
              if (document.getElementById('scalar-loading-indicator')) {
                document.body.removeChild(loadingIndicator);
              }
            }, 300);

            clearInterval(checkScalarLoaded);
          }
        }, 20000);
      });

      const themeObserver = new MutationObserver(function (mutations) {
        mutations.forEach(function (mutation) {
          if (
            mutation.type === 'attributes' &&
            mutation.attributeName === 'data-theme'
          ) {
            updateScalarThemeClass();
          }
        });
      });
      themeObserver.observe(document.documentElement, {
        attributes: true,
        attributeFilter: ['data-theme'],
      });
      themeObserver.observe(document.body, {
        attributes: true,
        attributeFilter: ['data-theme'],
      });
    }
  } catch (e) {
    console.log(e);
  }
})();
